home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MACD 5
/
MACD 5.bin
/
workbench
/
blankery
/
blanker
/
source
/
blankers
/
flyingtoaster
/
prefs.c
< prev
Wrap
C/C++ Source or Header
|
1993-08-01
|
3KB
|
118 lines
#include <exec/types.h>
#include <exec/memory.h>
#include <intuition/intuition.h>
#include <libraries/gadtools.h>
#include <dos/dos.h>
#include <clib/exec_protos.h>
#include <clib/intuition_protos.h>
#include <clib/gadtools_protos.h>
#include "FlyingToaster.h"
#include "FlyingToaster_rev.h"
#include "/defs.h"
struct mPrefObject {
LONG Objects, Speed;
};
VOID blank( VOID );
struct mPrefObject nP;
STATIC const UBYTE VersTag[] = VERSTAG;
extern struct Task **Task;
extern UBYTE *prefData;
#define MAX_SPEED 3
#define MAX_OBJECTS 40
VOID setFlyingToasterPrefs( VOID )
{
GT_SetGadgetAttrs( FlyingToasterGadgets[GD_OBJECTS], FlyingToasterWnd, 0L, GTSL_Level, nP.Objects , 0L );
GT_SetGadgetAttrs( FlyingToasterGadgets[GD_SPEED], FlyingToasterWnd, 0L, GTSL_Level, nP.Speed, 0L );
}
int OKClicked( VOID )
{
CopyMem( &nP, prefData, sizeof( struct mPrefObject ));
return( QUIT );
}
int TESTClicked( VOID )
{
*Task = FindTask( 0L );
blank();
return( CONTINUE );
}
int CANCELClicked( VOID )
{
return( QUIT );
}
int SPEEDClicked( VOID )
{
nP.Speed = FlyingToasterMsg.Code;
return( CONTINUE );
}
int OBJECTSClicked( VOID )
{
nP.Objects = FlyingToasterMsg.Code;
return( CONTINUE );
}
int FlyingToasterVanillaKey( VOID )
{
switch( FlyingToasterMsg.Code ) {
case 'o':
return( OKClicked() );
case 't':
return( TESTClicked() );
case 'c':
return( CANCELClicked() );
case 'a':
GT_SetGadgetAttrs( FlyingToasterGadgets[GD_OBJECTS], FlyingToasterWnd, 0L, GTSL_Level, ++(nP.Objects) > MAX_OBJECTS ?
nP.Objects = MAX_OBJECTS : nP.Objects, 0L );
return( CONTINUE );
case 'A':
GT_SetGadgetAttrs( FlyingToasterGadgets[GD_OBJECTS], FlyingToasterWnd, 0L, GTSL_Level, --(nP.Objects) < 1 ?
nP.Objects= 1 : nP.Objects, 0L );
return( CONTINUE );
case 's':
GT_SetGadgetAttrs( FlyingToasterGadgets[GD_SPEED], FlyingToasterWnd, 0L, GTSL_Level, ++(nP.Speed) > MAX_SPEED ?
nP.Speed = MAX_SPEED : nP.Speed, 0L );
return( CONTINUE );
case 'S':
GT_SetGadgetAttrs( FlyingToasterGadgets[GD_SPEED], FlyingToasterWnd, 0L, GTSL_Level, --(nP.Speed) < 1 ?
nP.Speed= 1 : nP.Speed, 0L );
return( CONTINUE );
default:
return( CONTINUE );
}
}
VOID prefs( LONG command )
{
switch( command ) {
case STARTUP:
CopyMem( prefData, &nP, sizeof( struct mPrefObject ));
if( !SetupScreen() ) {
if( !OpenFlyingToasterWindow()) setFlyingToasterPrefs();
CloseDownScreen();
}
break;
case IDCMP:
if( HandleFlyingToasterIDCMP() != QUIT ) break;
case KILL:
CloseFlyingToasterWindow();
}
}
LONG winSig( VOID )
{
return( FlyingToasterWnd ? 1L << FlyingToasterWnd->UserPort->mp_SigBit : 0L );
}